※タイトルの下に黒白反転用のリンクがあります。
※目次は見出しレベル2で確認できます。
このページではデータをバックアップするシェルスクリプトを紹介する。
シェルスクリプトとはコマンドを複数個まとめて書いた命令書のようなテキストファイルで拡張子は
ファイルの実行は、実行したいファイルを絶対パスか相対パスで指定するだけで実行できる。また、パスが長く頻繁に実行する場合、プログラミングと同じように変数名に格納して実行することもできる。
ファイルを作成して編集するには2通りある。一つは、使用するテキストエディタとファイルパスを指定する方法。もう一つは、ファイルを作るだけのコマンド
任意のディレクトリ直下のディレクトリやファイルをバックアップするには以下の処理とコマンドが必要になる。
mkdirで任意のディレクトリに入りバックアップ先ディレクトリを作る。
cp -rで作成したディレクトリにバックアップしたいディレクトリをコピーする。
上記の処理を実際にファイルを作成して実行する。
notepad.exe bck1.sh
mkdir /home/ユーザー名/バックアップ先ディレクトリ
cp -r /home/ユーザー名/バックアップしたいディレクトリ又はファイル /home/ユーザー名/作成したディレクトリ/
ファイル作成時はデフォルトで実行できないようになっているので、bck1.shに実行権限を与える必要がある。
1列目の一番初めはファイルである-が表示される。
-rw-r--r-- 1 グループ名 ユーザー名 0 Mar 1 00:54 bck1.sh
となっている
始めの3文字はr(読み)とw(書き)と-(無許可)なのでユーザーはファイルの編集と閲覧ができる。
次の3文字はr(読み)と-(無許可)と-(無許可)なのでユーザー以外のグループ所属者はファイルの閲覧のみ許可されている。
最後の3文字はグループ所属者と同じrと-と-になっている。
始めの3文字中最後の文字が-になっており、ユーザーは実行権限が付与されていない。
chmod +x ./bck1.sh
自分のユーザー名が4列目に表示されていなかった場合は
chown 新たな所属グループ:新たな所有者
実行権限が付与されたことで変更されない限り./bck1.shを実行することができる。
シェルスクリプトではVBAやC/C++など他のプログラミング言語のように自動化あるいは効率化できる。大学の研究室では観測データの処理のためにシェルスクリプトを使った。このページではfor文を使ってフォルダを複数個作るシャルスクリプトを紹介する。
まずはフォルダの名前になるテキストデータを作成するため、以下のように一行ずつ記述したファイル(dirName)を作る。(拡張子.txtはつけなくて良い)
dir1
dir2
dir3
保存したらスクリプト(makeDir.sh)に以下を記述(拡張子必須)
for names in $(cat ./dirName); do
mkdir ./"$names"
done
上の3行を保存して実行すれば現在いるディレクトリにdir1、dir2、dir3の3つのディレクトリができる。
for 変数名 in 変数; do
処理
done
がfor(繰り返し)文の基本文法となる。
一行目の変数名はnamesを付けている。
2行目は、現在いるディレクトリ(./)に$namesというディレクトリを作成せよと命令している。
mkdir ./dir1
mkdir ./dir2
mkdir ./dir3
本記事では簡単な処理の一部のみ紹介している。これらの操作は慣れが必要で、興味をもってくれた人は何回も試すとすぐに慣れてくる。